package com.erpanderp.wam.util;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.TreeMap;

import javax.faces.context.FacesContext;

import com.erpanderp.wam.ac.model.service.project.ProjectAssignmentDAO;
import com.erpanderp.wam.ac.model.service.reimbursement.MiscReimbursementDAO;
import com.erpanderp.wam.ac.model.service.reimbursement.ProjectPerdiemDAO;
import com.erpanderp.wam.ac.model.service.reimbursement.TravelReimbursementDAO;
import com.erpanderp.wam.ac.model.service.travel.TravelRequestDAO;
import com.erpanderp.wam.asset.model.service.AssetRequestDAO;
import com.erpanderp.wam.tm.model.service.RRFDAO;
import com.erpanderp.wam.tm.model.service.VendorRegistrationDAO;
import com.erpanderp.wam.usm.model.entity.leave.LeaveType;
import com.erpanderp.wam.usm.model.service.leave.EmployeeLeaveDAO;
import com.erpanderp.wam.usm.model.service.user.ComplaintsAndSuggestionDAO;

public class CommonLookup {

	public static String ASSETTYPE_CUSTOM_LOOKUP = "ASSETTYPE";
	public static String ASSET_NOTASSIGNED_STATUS = "NOT ASSIGNED";
	public static String ASSET_ASSINED_STATUS = "ASSIGNED";
	
	public static String DESIGNATION_CUSTOMLOOKUP_VALUE= "DESIGNATION"; 
	public static String PROJECT_KA= "KA";
	
	public static String MODULENAME_ERECRUITMENT = "eRecruitment";
	public static String MODULENAME_ADMINISTRATION = "Administration";
	public static String MODULENAME_TIME_MANAGEMENT = "Time Management";
	public static String MODULENAME_TRAVEL_MANAGEMENT = "Travel Management";
	public static String MODULENAME_CLAIMS = "Claims";
	public static String MODULENAME_PERSONAL_SKILLS = "Personal Skills";
	
	public static String POJECT_TYPE_IMPLEMENTATION = "Implementation";
	public static String POJECT_TYPE_SUPPORT = "Support";
	public static String POJECT_TYPE_ENHANCEMENT = "Enhancement";
	public static String POJECT_TYPE_ROLL_OUT = "Roll-Out";
	public static String POJECT_TYPE_UPGRADE = "Upgrade";
	
	public static String PAGE_DASHBOARD = "DASHBOARD";
	public static String PAGE_TIMESHEETS = "TIMESHEETS";
	
	public static String TEXT_WEEK_OFF = "WEEK OFF";
	public static String TEXT_WORKED = "WORKED";
	public static String DASHBOARD_ITEM_TYPE_LEAVE = "Leave Request";
	public static String DASHBOARD_ITEM_TYPE_TRAVEL_REQUEST = "Travel Request";
	public static String DASHBOARD_ITEM_TYPE_TRAVEL_EXP_CLIAM_FOR_RECOMMENDATION = "Travel Expense Claim For Recommendation";
	public static String DASHBOARD_ITEM_TYPE_TRAVEL_EXP_CLIAM_FOR_APPROVAL = "Travel Expense Claim For Approval";
	public static String DASHBOARD_ITEM_TYPE_TIMESHEETS = "Timesheets";
	public static String DASHBOARD_ITEM_TYPE_MISC_EXPENSE_CLAIMS = "Misc Expense Claims";
	public static String DASHBOARD_ITEM_TYPE_LEAVE_REJECTED = "Leave Rejected";
	public static String DASHBOARD_ITEM_TYPE_ASSET_REQUEST_FOR_RECOMMENDATION = "Asset Request For Recommendation";
	public static String DASHBOARD_ITEM_TYPE_ASSET_REQUEST_FOR_APPROVAL = "Asset Request For Approval";
	
	public static String ENROLLMENT_STATUS_ENROLLED = "ENROLLED";
	public static String ENROLLMENT_STATUS_NOT_ENROLLED = "NOT ENROLLED";
	public static String WAM_DEVTEAM_SIGNATURE = "WAM";
	public static String ROLETYPE_STANDARD_LABEL = "Standard";
	public static String ROLETYPE_STANDARD_VALUE = "STANDARD";
	public static String ROLETYPE_CUSTOM_LABEL = "Custom";
	public static String ROLETYPE_CUSTOM_VALUE = "CUSTOM";
	
	public static String SICKLEAVE_TYPE = "SL";
	public static String CASUALLEAVE_TYPE = "CL";
	public static String PRIVILIZEDLEAVE_TYPE = "PL";
	public static String OPTIONALLEAVE_TYPE = "OH";
	public static String WORKFROMHOME_TYPE = "WH";
	public static String LOSS_OF_PAY_TYPE = "LOP";
	public static String COMP_OF_TYPE = "COMP OFF";
	public static String LEAVE_ASSIGNED = "LEAVE ASSIGNED";
	public static String HALFDAY_STATUS = "HD";
	public static String FULLDAY_STATUS = "FD";
	
	
	public static String LEAVE_INPROCESS_STATUS = "IN PROCESS";
	public static String LEAVE_APPROVED_STATUS = "APPROVED";
	public static String LEAVE_REJECT_STATUS = "REJECTED";
	

 	public static String LEAVE_EMP_CANCELLED_STATUS = "CANCELLED";
	public static String LEAVE_PM_CANCELLED_STATUS = "CANCELLED";
	
	public static String LEAVE_REQUEST_MANAGER_ACTION_NOT_ACKNOWLEDGED = "NOT_ACKNOWLEDGED";
	public static String LEAVE_REQUEST_MANAGER_ACTION_ACKNOWLEDGED = "ACKNOWLEDGED";
	
	
	public static String LEAVE_CANCELLATION_INPROCESS_STATUS = "CANCELLATION IN PROCESS";
	public static String LEAVE_CANCELLATION_ACCEPTED_STATUS = "ACCEPTED";
	public static String LEAVE_CANCELLATION_REJECT_STATUS = "REJECTED";
	public static String LEAVE_CANCELLATION__MYSELF_STATUS = "CANCELLED MYSELF";
	
	public static String MISC_INPROCESS_STATUS = "IN PROCESS";
	public static String MISC_APPROVED_STATUS = "APPROVED";
	public static String MISC_REJECT_STATUS = "REJECTED";
	
	public static String VIEWUPDATE_PA_BUTTON = "View/Update Assignment";
	public static String  CREATE_PA_BUTTON = "Create Project Assignment";
	//MISC EXPENSE FORM
	public static String VIEWUPDATE_MISC_BUTTON = "Edit/View Miscellaneous Expense";
	public static String  CREATE_MISC_BUTTON = "Create Miscellaneous Expense";
	
    //PERDIEMS
	public static String VIEW_PROJECTPERDIEM_BUTTON = "View Project Perdiems";
	public static String  CREATE_PROJECTPERDIEM_BUTTON = "Create Project Perdiems";
	public static String  EDIT_PROJECTPERDIEM_BUTTON = "Edit Project Perdiems";
	
	//VIEW SKILLS 
	public static String VIEW_UNDER_COMPETENCY = "Under Your Competency";
	public static String ALL_EMPLOYEES = "All Employees Skills";
	
	//TRAVEL REIMBURSEMENT

	public static String VIEW_TRAVELREIMBUR_BUTTON = "Edit Travel Reimbursement";
	public static String  CREATE_TRAVELREIMBUR_BUTTON = "Create Travel Reimbursement";
	public static String  EDIT_TRAVELREIMBUR_BUTTON = "View Travel Reimbursement";
	
	public static String  TRAVEL_EXPENSE_TRANSPORT = "Transport Expense";
	public static String  TRAVEL_EXPENSE_LODGING = "Lodging Expense";
	public static String  TRAVEL_EXPENSE_BOARDING = "Boarding Expense";
	public static String  TRAVEL_EXPENSE_MISC = "Miscellaneous Expense";
	
	public static String  TRAVEL_EXPENSE_TYPE_ADVANCE = "Advance taken";
	public static String  TRAVEL_EXPENSE_TYPE_PAYABLE_RECIEVABLE = "Amount payable/recievable";
	public static String  TRAVEL_EXPENSE_TYPE_APPROVAL_AMOUNT = "Approval Amount";
	public static String  TRAVEL_EXPENSE_POLICY_AMOUNT = "Eligibility as per policy";
	
	public static String DESIGNATION_ACCOUNTS = "Accounts";
	public static String EDIT_MSIC_BUTTON = "EDIT/VIEW";
	public static String  CREATE_MSIC_BUTTON = "CREATE";
	public static String  MSIC_EDITABLE_FORM = "EDITABLE";
	public static String  MSIC_NOT_EDITABLE_FORM = "NOT EDITABLE";
	public static String LEAVE_CANCELLATION_REJECTED_STATUS = "REJECTED";
	
	public static String LEAVES_TO_BE_APPROVED = "Leaves To Be Approved";
	public static String LEAVES_TO_BE_CANCELLED = "Leaves To Be Cancelled";

	public static String ASSIGN_SERVICEGROUP_SERVICE_LABEL = "Assign Service Groups/Services";
	public static String DO_NOT_ASSIGN_SERVICEGROUP_SERVICE_LABEL = "Do not assign Service Groups/Services";

	public static String ASSIGN_SERVICE_LABEL = "Assign Services";
	public static String DO_NOT_ASSIGN_SERVICE_LABEL = "Do not assign Services";

	public static String ASSIGN_VIEW_SPAERP_MODULE_LABEL = "View SAP ERP Modules";
	public static String DO_NOT_VIEW_SPAERP_MODULE_LABEL = "Close Modules List";

	public static String ASSIGN_VIEW_LOGISTICS_LABEL = "View All Logistics";
	public static String DO_NOT_VIEW_LOGISTICS_LABEL = "Close Logistics List";

	public static String ASSIGN_RESOURCE_LABEL = "Assign Resources";
	public static String DO_NOT_ASSIGN_RESOURCE_LABEL = "Do not Assign Resources";

	public static String CREATEDBY_DEVELOPER_TEXT = "DEVELOPER";
	public static String STATUS_ACTIVE = "ACTIVE";
	public static String STATUS_INACTIVE = "INACTIVE";
	
    
	public static String START_PAGE_YES = "YES";
	public static String START_PAGE_NO = "NO";

	public static String EMPLOYEE_CODE_START = "E50001";
	public static String EMPLOYEE_CODE_START_CHARACTER = "E";

	public static String AUTHENTICATION_YES = "YES";
	public static String AUTHENTICATION_NO = "NO";

	public static String STANDARD_ROLE_ADMINISTRATOR = "ADMIN";
	public static String STANDARD_ROLE_CMD = "CMD";
	public static String STANDARD_ROLE_CH = "CH";
	public static String STANDARD_ROLE_VP = "VP";
	public static String STANDARD_ROLE_EMP = "EMP";
	public static String STANDARD_ROLE_HR = "HR";
	public static String STANDARD_ROLE_TRAINEE = "TR";
	public static String STANDARD_ROLE_PROJECT_MANAGER = "PM";
	public static String STANDARD_ROLE_COMPETENCY_LEAD = "CL";
	public static String STANDARD_ROLE_RECRUITER = "RECRUITER";
	public static String STANDARD_ROLE_AC = "AC";
	public static String STANDARD_ROLE_COO = "COO";

	// DESIGNATIONS MAP
	public static String DESIGNATION_HR_EXECUTIVE_LABEL = "Hr Executive";
	public static String DESIGNATION_HR_EXECUTIVE_VALUE = "Hr Executive";
	public static String DESIGNATION_SENIOR_REGIONAL_MANAGER_LABEL = "Senior Regional Manager - Operations And Delivery";
	public static String DESIGNATION_SENIOR_REGIONAL_MANAGER_VALUE = "Senior Regional Manager - Operations And Delivery";
	public static String DESIGNATION_CMD_LABEL = "Chief Managing Director";
	public static String DESIGNATION_CMD_VALUE = "CMD";
	public static String DESIGNATION_PROJECT_MANAGER_LABEL = "Project Manager";
	public static String DESIGNATION_PROJECT_MANAGER_VALUE = "Project Manager";
	public static String DESIGNATION_REGIONAL_MANAGER_LABEL = "Regional Manager - Operations And Delivery";
	public static String DESIGNATION_REGIONAL_MANAGER_VALUE = "Regional Manager-Operations And Delivery";
	public static String DESIGNATION_CHIEF_OPRRATION_OFICER_LABEL = "Chief Operating Officer";
	public static String DESIGNATION_CHIEF_OPRRATION_OFICER_VALUE = "Chief Operating Officer";
	public static String DESIGNATION_DELIVERY_MANAGER_LABEL = "Delivery Manager";
	public static String DESIGNATION_DELIVERY_MANAGER_VALUE = "Delivery Manager";
	public static String DESIGNATION_VICE_PRESIDENT_LABEL = "Vice President";
	public static String DESIGNATION_VICE_PRESIDENT_VALUE = "Vice President";
	public static String DESIGNATION_ASSOCIATE_CONSULTANT_LABEL = "Associate Consultant";
	public static String DESIGNATION_ASSOCIATE_CONSULTANT_VALUE = "Associate Consultant";
	public static String DESIGNATION_TRAINEE_LABEL = "Trainee";
	public static String DESIGNATION_TRAINEE_VALUE = "Trainee";
	public static String DESIGNATION_CONSULTANT_LABEL = "Consultant";
	public static String DESIGNATION_CONSULTANT_VALUE = "Consultant";
	public static String DESIGNATION_SR_CONSULTANT_LABEL = "Sr.Consultant";
	public static String DESIGNATION_SR_CONSULTANT_VALUE = "Sr. Consultant";
	public static String dESIGNATION_ASSOCIATE_PROJECT_MANAGER_LABEL = "Associate Project Manager";
	public static String DESIGNATION_ASSOCIATE_PROJECT_MANAGER_VALUE = "Associate Project Manager";
	public static String DESIGNATION_SR_DELIVERY_MANAGER_LABEL = "Sr.Delivery Manager";
	public static String DESIGNATION_SR_DELIVERY_MANAGER_VALUE = "Sr.Delivery Manager";
	public static String DESIGNATION_BUSINESS_DEVELOPMENT_EXECUTIVE_LABEL = "Business Development Excecutive";
	public static String DESIGNATION_BUSINESS_DEVELOPMENT_EXECUTIVE_VALUE = "Business Development Excecutive";
	public static String DESIGNATION_SYSTEM_ADMINISTRATOR_LABEL = "System Administrator";
	public static String DESIGNATION_SYSTEM_ADMINISTRATOR_VALUE = "System Administrator";
	public static String DESIGNATION_ASSOCIATE_VICEPRESIDENT_LABEL = "Associate Vice Precident";
	public static String DESIGNATION_ASSOCIATE_VICEPRESIDENT_VALUE = "Associate Vice Precident";
	public static String DESIGNATION_MANAGEMENT_EXECUTIVE_LABEL = "Management Executive";
	public static String DESIGNATION_MANAGEMENT_EXECUTIVE_VALUE = "Management Executive";
	public static String DESIGNATION_ASSOCIATE_MANAGER_RESOURCING_LABEL = "Associate Manager - Resourcing";
	public static String DESIGNATION_ASSOCIATE_MANAGER_RESOURCING_VALUE = "Associate Manager-Resourcing";
	public static String DESIGNATION_SENIOR_HR_LABEL = "Senior HR";
	public static String DESIGNATION_SENIOR_HR_VALUE = "Senior HR";
	public static String DESIGNATION_SR_SYSTEM_ADMINISTRATOR_LABEL = "Sr. System Administrator";
	public static String DESIGNATION_SR_SYSTEM_ADMINISTRATOR_VALUE = "sr.system administrator";
	public static String DESIGNATION_SR_PRACTICE_MANAGER_LABEL = "Sr. Practice Manager";
	public static String DESIGNATION_SR_PRACTICE_MANAGER_VALUE = "Sr.Practice Manager";
	public static String DESIGNATION_SR_PROJECT_MANAGER_LABEL = "Sr. Project Manager";
	public static String DESIGNATION_SR_PROJECT_MANAGER_VALUE = "Sr.Project Manager";
	public static String DESIGNATION_BUSINESS_DEVELOPMENT_MGR_LABEL = "Business Development Manager";
	public static String DESIGNATION_BUSINESS_DEVELOPMENT_MGR_VALUE = "Business Development Manager";
	public static String DESIGNATION_ACCOUNT_EXECUTIVE_LABEL = "Accounts Executive";
	public static String DESIGNATION_ACCOUNT_EXECUTIVE_VALUE = "Accounts executive";
	public static String DESIGNATION_LEAD_CONSULTANT = "Lead Consultant";
	public static String DESIGNATION_LEAD_CONSULTANT_LABEL = "Lead Consultant";
	public static String DESIGNATION_SR_LEAD_CONSULTANT_LABEL = "Senior Lead Consultant";
	public static String DESIGNATION_SR_LEAD_CONSULTANT = "Senior Lead Consultant";
	public static String DESIGNATION_OTHERS_LABEL = "Others";
	public static String DESIGNATION_OTHERS_VALUE = "Others";
	
	
	public static String PROJECTSTATUS_BENCH_LABLE = "Bench";
	public static String PROJECTSTATUS_BENCH_VALUE = "Bench";

	public static String PROJECTSTATUS_BILLABLE_LABLE = "Billable";
	public static String PROJECTSTATUS_BILLABLE_VALUE = "Billable";

	public static String PROJECTSTATUS_NON_BILLABLE_LABLE = "Non Billable";
	public static String PROJECTSTATUS_NON_BILLABLE_VALUE = "Non Billable";
	
	public static String PROJECTSTATUS_PARTIALLY_BILLABLE_LABLE = "Partially Billable";
	public static String PROJECTSTATUS_PARTIALLY_BILLABLE_VALUE = "Partially Billable";
	

	public static String PROJECTSTATUS_KAKT_LABLE = "KA/KT";
	public static String PROJECTSTATUS_KAKT_VALUE = "KA/KT";
	

	public static String PROJECTSTATUS_INTERNAL_PROJECT_LABLE = "Internal Project";
	public static String PROJECTSTATUS_INTERNAL_PROJECT_VALUE = "Internal Project";
	
	public static String PROJECTSTATUS_KA_LABLE = "KA";
	public static String PROJECTSTATUS_KS_VALUE = "KA";

	public static String AUTHENTICATION_YES_LABLE = "Yes";
	public static String AUTHENTICATION_YES_VALUE = "Yes";

	public static String AUTHENTICATION_NO_LABLE = "No";
	public static String AUTHENTICATION_NO_VALUE = "No";

	public static String RESIGNED_YES_LABLE = "Yes";
	public static String RESIGNED_YES_VALUE = "Yes";

	public static String RESIGNED_NO_LABLE = "No";
	public static String RESIGNED_NO_VALUE = "No";

	
	
	//For Domestic Project assignment creation approver will be VP
	public static String PROJECTASSIGNMENT_DOMESTIC_INTERNATIONAL_APPROVER ="J.N Rao";
	public static String PROJECTASSIGNMENT_DOMESTIC_INTERNATIONAL_APPROVER_EMAIL ="dayasankar@ymail.com";
	
	public static String PROJECT_ASSIGNMENT_INPROCESS_STATUS = "INPROCESS";
	public static String PROJECT_ASSIGNMENT_APPROVED_STATUS = "APPROVED";
	public static String PROJECT_ASSIGNMENT_RECOMMENDATIONSTATUS_STATUS = "RECOMMENDED";
	public static String PROJECT_ASSIGNMENT_REJECTIONSTATUS_STATUS = "REJECTED";
	public static String PROJECT_ASSIGNMENT_TYPE_DOMESTIC = "DOMESTIC";
	public static String PROJECT_ASSIGNMENT_TYPE_INTERNATIONAL = "INTERNATIONAL";
	
	public static String PERDIEM_INPROCESS__STATUS = "INPROCESS";
	public static String PERDIEM_APPROVED__STATUS = "APPROVED";
	public static String PERDIEM_RECOMMENDED__STATUS = "RECOMMENDED";
	public static String PERDIEM_REJECT__STATUS = "REJECTED";
	
	//For International Project assignment Journey type
	public static String  JOURNEY_TYPE_ONWARD = "ONWARD";
	public static String  JOURNEY_TYPE_RETURN = "RETURN";
	

	// FOR travel Reimbursed by client or ERPandERP
	public static String REIMBURSED_BYCLIENT_LABLE = "By Client";
	public static String REIMBURSED_BYCLIENT_VALUE = "By Client";

	public static String REIMBURSED_BYERP_LABLE = "By ERPandERP";
	public static String REIMBURSED_BYERP_VALUE = "By ERPandERP";

	public static String TRAVEL_DOMESTIC_LABEL = "Domestic";
	public static String TRAVEL_DOMESTIC_VALUE = "DOMESTIC";
	public static String TRAVEL_BOTH_LABEL = "Both Domestic and Overseas";
	public static String TRAVEL_BOTH_VALUE = "BOTH DOMESTIC AND OVERSEAS";	
	public static String TRAVEL_OVERSEAS_LABEL = "Overseas";
	public static String TRAVEL_OVERSEAS_VALUE = "OVERSEAS";

	public static String SESSION_ATTRIBUTE_WAMUSER = "WAMUSER";
	public static String SESSION_ATTRIBUTE_WAMUSERNAME = "WAMUSERNAME";
	public static String SESSION_ATTRIBUTE_USER_MENU_GENERATED = "USER_MENU_GENERATED";
	
	public static String SESSION_ATTRIBUTE_USER_MENU_GENERATED_YES = "YES";
	

	public static String LOCATION_HYDERABAD_DISPLAY_NAME = "Hyderabad";
	public static String LOCATION_HYDERABAD = "HYDERABAD";

	//FOR RRF 
	public static String MODULENAME_RECRUITMENT = "Recruitment";
	
	public static String INTERNAL_LABLE = "Internal(Competency)";
	public static String INTERNAL_VALUE = "Internal(Competency)";

	public static String DELIVARY_LABLE = "Delivary";
	public static String DELIVARY_VALUE = "Delivary";
	
	public static String SINGLE_LEVEL_LABLE = "Single Level";
	public static String SINGLE_LEVEL_VALUE = "Single Level";
	
	public static String TWO_LEVEL_LABLE = "Two Level";
	public static String TWO_LEVEL_VALUE = "Two Level";

	public static String CONTRACT_HIRE_LABLE = "Contract to Hire";
	public static String CONTRACT_HIRE_VALUE = "Two Level";
	
	public static String CONTRACT_LABLE = "Contact";
	public static String CONTRACT_VALUE = "Contact";
	
	public static String PERMANENT_LABLE = "Permanent";
	public static String PERMANENT_VALUE = "Permanent";
	
	public static String PRIORITY_LOW_LABLE = "Low";
	public static String PRIORITY_LOW_VALUE = "Low";
	
	public static String PRIORITY_MEDIUM_LABLE = "Medium";
	public static String PRIORITY_MEDIUM_VALUE = "Medium";
	
	public static String PRIORITY_HIGH_LABLE = "High";
	public static String PRIORITY_HIGH_VALUE = "High";
	
	public static String ASSETPURPOSE_PROJECT= "Project";
	public static String ASSETPURPOSE_OFFICIAL = "Official";
	public static String ASSETPURPOSE_OTHERS = "Others";
	
	
	
	public static String EMAIL_SENT_AND_RECORDED = "EMAIL SENT AND RECORDED";
	public static String EMAIL_SENT_AND_NOT_RECORDED = "EMAIL SENT AND NOT RECORDED";
	public static String EMAIL_FAILED_AND_RECORDED = "EMAIL NOT SENT BUT RECORDED";
	public static String EMAIL_FAILED_AND_NOT_RECORDED = "EMAIL NOT SENT AND NOT RECORDED";
	
	public static String TIMESHEET_DETAILS_NOT_FOUND = "You have not created a timesheet for the selected month.";
	
	public static String TIMESHEET_STATUS_NOT_CREATED = "NOT CREATED";
	public static String TIMESHEET_STATUS_NOT_SUBMITTED = "NOT SUBMITTED";
	public static String TIMESHEET_STATUS_TO_BE_APPROVED = "TO BE APPROVED";
	public static String TIMESHEET_STATUS_APPROVED = "APPROVED";
	public static String TIMESHEET_STATUS_REJECTED = "REJECTED";
	
	
	public static String CURRENCY_CUSTOM_LOOKUP = "CURRENCY";
	public static String CURRENCY_PRICE_VALUE = "PRICE";
	
	public static String PERMISSION_YES = "YES";
	public static String PERMISSION_NO = "NO";
	
	public static String PERMISSION_VIEW_EMPLOYEE_INFO = "VIEW EMPLOYEE INFO";
	public static String PERMISSION_EDIT_EMPLOYEE_INFO = "EDIT EMPLOYEE INFO";
	public static String PERMISSION_VIEW_EMPLOYEE_TIMESHEET = "VIEW EMPLOYEE TIMESHEET";
	public static String PERMISSION_VIEW_EMPLOYEE_LEAVES = "VIEW EMPLOYEE LEAVES";
	public static String PERMISSION_TO_RELIEVE_EMPLOYEE = "RELIEVE EMPLOYEE";
	
	public static String RELIEVE_EMPLOYEE = "YES";
	public static String PERMISSION_APPROVE_LEAVE = "APPROVE LEAVE";
    public static String PERMISSION_REJECT_LEAVE = "REJECT LEAVE";
	
	public static String FUULLCYCLEIMPLEMENTATION_LABLE = "Full Cycle Implementation";
    public static String FUULLCYCLEIMPLEMENTATION_VALUE = "Full Cycle Implementation";
    public static String UPGRADE_LABLE = "Upgrade Project(s)";
    public static String UPGRADE_VALUE = "Upgrade Project(s)";
    public static String ROLLOUT_LABLE = "Roll-Out Project(s)";
    public static String ROLLOUT_VALUE = "Roll-Out Project(s)";
    public static String MAINTENANCE_SUPPRORT_LABLE = "Maintenance and Support Project(s)";
    public static String MAINTENANCE_SUPPRORT_VALUE = "Maintenance and Support Project(s)";
    public static String INDUSTRY_EXPERIENCE_LABLE = "Experience in Industry Sectors";
    public static String INDUSTRY_EXPERIENCE_VALUE = "Experience in Industry Sectors";
    public static String WORKFLOW_LABLE = "Workflow";
    public static String WORKFLOW_VALUE = "Workflow";
    public static String SOLUTION_MANAGER_LABLE = "Solution Manager";
    public static String SOLUTION_MANAGER_VALUE = "Solution Manager";
    public static String RFID_LABLE = "RFID";
    public static String RFID_VALUE = "RFID";
    public static String TESTING_LABLE = "Testing";
    public static String TESTING_VALUE = "Testing";
    public static String INTEGRATION_INTERFACES_LABLE = "Integration/Interfaces";
    public static String INTEGRATION_INTERFACES_VALUE = "Integration/Interfaces";
    public static String LSMW_LABLE = "LSMW";
    public static String LSMW_VALUE = "LSMW";
    public static String CATT_LABLE = "CATT";
    public static String CATT_VALUE = "CATT";
    public static String IS_UTILITIES_LABLE = "IS Utilities";
    public static String IS_UTILITIES_VALUE = "IS Utilities";
    public static String TRAINING_UNDERGONE_LABLE = "Specific Trainings Undergone";
    public static String TRAINING_UNDERGONE_VALUE = "Specific Trainings Undergone";
    public static String OTHER_AREAS_LABLE = "Other Areas";
    public static String OTHER_AREAS_VALUE = "Other Areas";
    
    //Lookup values for Entities
    public static String ENTITY_TRAVELREQUEST = "TravelRequest";
    //End of Lookup values for Entities
    
    public static String LOOKUP_NATUREOFWORK_PROJECTASSIGNMENT = "Project Assignment";
    public static String LOOKUP_NATUREOFWORK_PRESALES = "Pre Sales";
    public static String LOOKUP_NATUREOFWORK_SALES = "Sales";
    public static String LOOKUP_NATUREOFWORK_OTHERS = "Others";
    
    public static String LOOKUP_TRAVELMODE_BUS = "Bus";
    public static String LOOKUP_TRAVELMODE_TRAIN = "Train";
    public static String LOOKUP_TRAVELMODE_FLIGHT = "Air";
    public static String LOOKUP_TRAVELMODE_SHIP = "Taxi";

    public static String LOOKUP_REIMBURSEDBY_CLIENT = "Client";
    public static String LOOKUP_REIMBURSEDBY_ERPANDERP = "ERPandERP";
    
    public static String TRAVEL_REQUEST_STATUS_INPROCESS = "IN PROCESS";
    public static String TRAVEL_REQUEST_STATUS_APPROVED = "APPROVED";
    public static String TRAVEL_REQUEST_STATUS_REJECTED = "REJECTED";
    
    public static String STATUS_INPROCESS = "IN PROCESS";
    public static String STATUS_APPROVED = "APPROVED";
    public static String STATUS_REJECTED = "REJECTED";
    public static String STATUS_RECOMMENDED = "RECOMMENDED";
    
    public static String PRIVATEHOST = "PRIVATE";
    public static String PUBLICHOST = "PUBLICHOST";
    public static String DEV_EMAIL = "DEVELOPMENT EMAIL";
    
    //RRF Related ShortList Mode
    public static String FACETOFACE_LABLE = "Face To Face";
    public static String FACETOFACE_VALUE = "Face To Face";
    public static String VIDEOCALL_LABLE = "Video Call";
    public static String VIDEOCALL_VALUE = "Video Call";
    public static String TELEPHONE_LABLE = "Telephone";
    public static String TELEPHONE_VALUE = "Telephone";
    
   
    public static Map<String, String> getAllStatus() {
  		Map<String, String> statusMap = new HashMap<String, String>();
  		statusMap.put(STATUS_INPROCESS , STATUS_INPROCESS);
  		statusMap.put(STATUS_APPROVED, STATUS_APPROVED);
  		statusMap.put(STATUS_REJECTED, STATUS_REJECTED);
  		return statusMap;
  	} 
    
    public static Map<String, String> getAssetPupose() {
  		Map<String, String> assetPurposeMap = new HashMap<String, String>();
  		assetPurposeMap.put(ASSETPURPOSE_PROJECT , ASSETPURPOSE_PROJECT);
  		assetPurposeMap.put(ASSETPURPOSE_OFFICIAL, ASSETPURPOSE_OFFICIAL);
  		assetPurposeMap.put(ASSETPURPOSE_OTHERS, ASSETPURPOSE_OTHERS);
  		return assetPurposeMap;
  	}  	
  	public static Map<String, String> getAssetStatus() {
  		Map<String, String> assetStatusMap = new TreeMap<String, String>();
  		assetStatusMap.put("IN STORE" , "IN STORE");
  		assetStatusMap.put("IN USE" , "IN USE");
  		assetStatusMap.put("NOT WORKING" , "NOT WORKING");
  		assetStatusMap.put("DISPOSED" , "DISPOSED");
  		return assetStatusMap;
  	}
  	public static Map<String, String> getAssetBusinessImpact() {
		Map<String, String> businessImpactMap = new HashMap<String, String>();
		businessImpactMap.put(PRIORITY_LOW_LABLE , PRIORITY_LOW_VALUE);
		businessImpactMap.put(PRIORITY_MEDIUM_LABLE, PRIORITY_MEDIUM_VALUE);
		businessImpactMap.put(PRIORITY_HIGH_LABLE, PRIORITY_HIGH_VALUE);
		return businessImpactMap;
	}
	public static Map<String, String> getAssetCategory() {
		Map<String, String> assetCategoryMap = new HashMap<String, String>();
		assetCategoryMap.put("IT-Assets" , "IT-Assets");
		assetCategoryMap.put("Non-IT Assets" , "Non-IT Assets");
		return assetCategoryMap;
	}
    
    
    public static Map<String, String> getSkillMatrixAdditionalSkills() {
        Map<String, String> additionalSkillsMap = new HashMap<String, String>();
        additionalSkillsMap.put(FUULLCYCLEIMPLEMENTATION_LABLE, FUULLCYCLEIMPLEMENTATION_VALUE);
        additionalSkillsMap.put(UPGRADE_LABLE, UPGRADE_VALUE);
        additionalSkillsMap.put(ROLLOUT_LABLE, ROLLOUT_VALUE);
        additionalSkillsMap.put(MAINTENANCE_SUPPRORT_LABLE, MAINTENANCE_SUPPRORT_VALUE);
        additionalSkillsMap.put(INDUSTRY_EXPERIENCE_LABLE, INDUSTRY_EXPERIENCE_VALUE);
        additionalSkillsMap.put(WORKFLOW_LABLE, WORKFLOW_VALUE);
        additionalSkillsMap.put(SOLUTION_MANAGER_LABLE, SOLUTION_MANAGER_VALUE);
        additionalSkillsMap.put(RFID_LABLE, RFID_VALUE);
        additionalSkillsMap.put(TESTING_LABLE, TESTING_VALUE);
        additionalSkillsMap.put(INTEGRATION_INTERFACES_LABLE, INTEGRATION_INTERFACES_VALUE);
        additionalSkillsMap.put(LSMW_LABLE, LSMW_VALUE);
        additionalSkillsMap.put(CATT_LABLE, CATT_VALUE);
        additionalSkillsMap.put(IS_UTILITIES_LABLE, IS_UTILITIES_VALUE);
        additionalSkillsMap.put(TRAINING_UNDERGONE_LABLE, TRAINING_UNDERGONE_VALUE);
        additionalSkillsMap.put(OTHER_AREAS_LABLE, OTHER_AREAS_VALUE);
        return additionalSkillsMap;
    }
    
	/**
	 * These map should be taken from CustomLookup later...
	 * @return
	 */
    public static Map<String, String> getInterviewMode() {
		Map<String, String> interviewModeMap = new HashMap<String, String>();
		interviewModeMap.put(FACETOFACE_LABLE, FACETOFACE_VALUE);
		interviewModeMap.put(VIDEOCALL_LABLE, VIDEOCALL_VALUE);
		interviewModeMap.put(TELEPHONE_LABLE, TELEPHONE_VALUE);
		return interviewModeMap;
	}

    
	public static Map<String, String> getPermissionsMap(){
		Map<String, String> permissionsMap = new HashMap<String, String>();
		permissionsMap.put("View Employee Info", CommonLookup.PERMISSION_VIEW_EMPLOYEE_INFO);
		permissionsMap.put("Edit Employee Info", CommonLookup.PERMISSION_EDIT_EMPLOYEE_INFO);
		permissionsMap.put("Approve Leave", CommonLookup.PERMISSION_APPROVE_LEAVE);
		permissionsMap.put("View Employee Timesheet", CommonLookup.PERMISSION_VIEW_EMPLOYEE_TIMESHEET);
		return permissionsMap;
	}
	
	public static Map<String, String> getInterviewLevel() {
		Map<String, String> interviewLevelMap = new HashMap<String, String>();
		interviewLevelMap.put(SINGLE_LEVEL_LABLE, SINGLE_LEVEL_VALUE);
		interviewLevelMap.put(TWO_LEVEL_LABLE, TWO_LEVEL_VALUE);
		return interviewLevelMap;
	}

	public static Map<String, Integer> getMonths() {
		Map<String, Integer> monthsMap = new LinkedHashMap<String, Integer>();
		monthsMap.put("JANUARY", 0);
		monthsMap.put("FEBRUARY", 1);
		monthsMap.put("MARCH", 2);
		monthsMap.put("APRIL", 3);
		monthsMap.put("MAY", 4);
		monthsMap.put("JUNE", 5);
		monthsMap.put("JULY", 6);
		monthsMap.put("AUGUST", 7);
		monthsMap.put("SEPTEMBER", 8);
		monthsMap.put("OCTOBER", 9);
		monthsMap.put("NOVEMBER", 10);
		monthsMap.put("DECEMBER", 11);
		return monthsMap;
	}
	
	public static Map<String,String> getLeaveStatus(){
		Map<String,String> leaveStatusMap = new HashMap<String, String>();
		leaveStatusMap.put("Approved", CommonLookup.LEAVE_APPROVED_STATUS);
		leaveStatusMap.put("In process", CommonLookup.LEAVE_INPROCESS_STATUS);
		leaveStatusMap.put("Rejected", CommonLookup.LEAVE_REJECT_STATUS);
		leaveStatusMap.put("Cancellation Inprocess", CommonLookup.LEAVE_CANCELLATION_INPROCESS_STATUS);
		leaveStatusMap.put("Cancelled", CommonLookup.LEAVE_EMP_CANCELLED_STATUS);
		return leaveStatusMap;
	}
	
	public static Map<String, String> getClient() {
		Map<String, String> clientMap = new HashMap<String, String>();
		clientMap.put(INTERNAL_LABLE, INTERNAL_VALUE);
		clientMap.put(DELIVARY_LABLE, DELIVARY_VALUE);
		return clientMap;
	}
	
	public static Map<String, String> getRecruitmentMode() {
		Map<String, String> recruitmentModeMap = new HashMap<String, String>();
		recruitmentModeMap.put(CONTRACT_HIRE_LABLE , CONTRACT_HIRE_VALUE);
		recruitmentModeMap.put(CONTRACT_LABLE, CONTRACT_VALUE);
		recruitmentModeMap.put(PERMANENT_LABLE, PERMANENT_LABLE);
		return recruitmentModeMap;
	}
	
	public static Map<String, String> getRecruitmentPriority() {
		Map<String, String> recruitmentPriority = new HashMap<String, String>();
		recruitmentPriority.put(PRIORITY_LOW_LABLE , PRIORITY_LOW_VALUE);
		recruitmentPriority.put(PRIORITY_MEDIUM_LABLE, PRIORITY_MEDIUM_VALUE);
		recruitmentPriority.put(PRIORITY_HIGH_LABLE, PRIORITY_HIGH_VALUE);
		return recruitmentPriority;
	}
	




	public static Map<String, String> getRoleTypes() {
		Map<String, String> roleTypes = new HashMap<String, String>();
		roleTypes.put(ROLETYPE_STANDARD_LABEL, ROLETYPE_STANDARD_VALUE);
		roleTypes.put(ROLETYPE_CUSTOM_LABEL, ROLETYPE_CUSTOM_VALUE);
		return roleTypes;
	}

	public static Map<String, String> getDesignationsMap() {
		Map<String, String> designationsMap = new HashMap<String, String>();
		designationsMap.put(DESIGNATION_DELIVERY_MANAGER_LABEL, DESIGNATION_DELIVERY_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_CMD_LABEL, DESIGNATION_CMD_VALUE);
		designationsMap.put(dESIGNATION_ASSOCIATE_PROJECT_MANAGER_LABEL, DESIGNATION_ASSOCIATE_PROJECT_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_PROJECT_MANAGER_LABEL, DESIGNATION_PROJECT_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_ASSOCIATE_MANAGER_RESOURCING_LABEL, DESIGNATION_ASSOCIATE_MANAGER_RESOURCING_VALUE);
		designationsMap.put(DESIGNATION_SENIOR_HR_LABEL, DESIGNATION_SENIOR_HR_VALUE);
		
		designationsMap.put(DESIGNATION_VICE_PRESIDENT_LABEL, DESIGNATION_VICE_PRESIDENT_VALUE);
		designationsMap.put(DESIGNATION_ASSOCIATE_CONSULTANT_LABEL, DESIGNATION_ASSOCIATE_CONSULTANT_VALUE);
		designationsMap.put(DESIGNATION_SR_CONSULTANT_LABEL, DESIGNATION_SR_CONSULTANT_VALUE);
		designationsMap.put(DESIGNATION_CONSULTANT_LABEL, DESIGNATION_CONSULTANT_VALUE);
		designationsMap.put(DESIGNATION_SR_CONSULTANT_LABEL, DESIGNATION_SR_CONSULTANT_VALUE);
		designationsMap.put(DESIGNATION_SR_DELIVERY_MANAGER_LABEL, DESIGNATION_SR_DELIVERY_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_BUSINESS_DEVELOPMENT_EXECUTIVE_LABEL,
				DESIGNATION_BUSINESS_DEVELOPMENT_EXECUTIVE_VALUE);
		designationsMap.put(DESIGNATION_SYSTEM_ADMINISTRATOR_LABEL, DESIGNATION_SYSTEM_ADMINISTRATOR_VALUE);
		designationsMap.put(DESIGNATION_SR_SYSTEM_ADMINISTRATOR_LABEL,	DESIGNATION_SR_SYSTEM_ADMINISTRATOR_VALUE);
		designationsMap.put(DESIGNATION_SR_PRACTICE_MANAGER_LABEL,	DESIGNATION_SR_PRACTICE_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_SR_PROJECT_MANAGER_LABEL,DESIGNATION_SR_PROJECT_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_BUSINESS_DEVELOPMENT_MGR_LABEL,	DESIGNATION_BUSINESS_DEVELOPMENT_MGR_VALUE);
		designationsMap.put(DESIGNATION_ACCOUNT_EXECUTIVE_LABEL, DESIGNATION_ACCOUNT_EXECUTIVE_VALUE);
		designationsMap.put(DESIGNATION_ASSOCIATE_VICEPRESIDENT_LABEL, DESIGNATION_ASSOCIATE_VICEPRESIDENT_VALUE);
		designationsMap.put(DESIGNATION_MANAGEMENT_EXECUTIVE_LABEL, DESIGNATION_MANAGEMENT_EXECUTIVE_VALUE);
		designationsMap.put(DESIGNATION_HR_EXECUTIVE_LABEL, DESIGNATION_HR_EXECUTIVE_VALUE);
		designationsMap.put(DESIGNATION_OTHERS_LABEL, DESIGNATION_OTHERS_VALUE);
		designationsMap.put(DESIGNATION_TRAINEE_LABEL, DESIGNATION_TRAINEE_VALUE);
		designationsMap.put(DESIGNATION_CHIEF_OPRRATION_OFICER_LABEL, DESIGNATION_CHIEF_OPRRATION_OFICER_VALUE);

		designationsMap.put(DESIGNATION_SENIOR_REGIONAL_MANAGER_LABEL, DESIGNATION_SENIOR_REGIONAL_MANAGER_VALUE);

		designationsMap.put(DESIGNATION_REGIONAL_MANAGER_LABEL,	DESIGNATION_REGIONAL_MANAGER_VALUE);
		designationsMap.put(DESIGNATION_LEAD_CONSULTANT_LABEL,	DESIGNATION_LEAD_CONSULTANT);
		designationsMap.put(DESIGNATION_SR_LEAD_CONSULTANT_LABEL,	DESIGNATION_SR_LEAD_CONSULTANT);		
		
		return designationsMap;

	}

	public static Map<String, String> getProjectsStatusMap() {
		Map<String, String> projectsStatusMap = new HashMap<String, String>();
		projectsStatusMap.put(PROJECTSTATUS_BENCH_LABLE,
				PROJECTSTATUS_BENCH_VALUE);
	
		projectsStatusMap.put(PROJECTSTATUS_BILLABLE_LABLE,
				PROJECTSTATUS_BILLABLE_VALUE);
		projectsStatusMap.put(PROJECTSTATUS_NON_BILLABLE_LABLE,
				PROJECTSTATUS_NON_BILLABLE_VALUE);
		projectsStatusMap.put(PROJECTSTATUS_PARTIALLY_BILLABLE_LABLE,
				PROJECTSTATUS_PARTIALLY_BILLABLE_LABLE);
		projectsStatusMap.put(PROJECTSTATUS_KAKT_LABLE,
				PROJECTSTATUS_KAKT_VALUE);
		projectsStatusMap.put(PROJECTSTATUS_INTERNAL_PROJECT_LABLE,
				PROJECTSTATUS_INTERNAL_PROJECT_VALUE);
		return projectsStatusMap;
	}

	public static Map<String, String> getAuthenticationsMap() {
		Map<String, String> authenticationsMap = new HashMap<String, String>();
		authenticationsMap.put(AUTHENTICATION_YES, AUTHENTICATION_YES_VALUE);
		authenticationsMap
				.put(AUTHENTICATION_NO_LABLE, AUTHENTICATION_NO_VALUE);
		return authenticationsMap;
	}

	public static Map<String, String> getResignedMap() {
		Map<String, String> resignedMap = new HashMap<String, String>();
		resignedMap.put(RESIGNED_YES_LABLE, RESIGNED_YES_VALUE);
		resignedMap.put(RESIGNED_NO_LABLE, RESIGNED_NO_VALUE);
		return resignedMap;
	}

	public static String getResourceBundleString(String resourceBundleKey,
			FacesContext facesContext) throws MissingResourceException {
		ResourceBundle bundle = facesContext.getApplication()
				.getResourceBundle(facesContext, "msg");
		return bundle.getString(resourceBundleKey);
	}

	public static Map<String, String> getReimbursedbyClientOrERPMap() {
		Map<String, String> reimbursedMap = new HashMap<String, String>();
		reimbursedMap.put(REIMBURSED_BYCLIENT_LABLE, REIMBURSED_BYCLIENT_VALUE);
		reimbursedMap.put(REIMBURSED_BYERP_LABLE, REIMBURSED_BYERP_VALUE);
		return reimbursedMap;
	}

	public static Map<String, String> getTravelTypesMap() {
		Map<String, String> travelmodeMap = new HashMap<String, String>();
		travelmodeMap.put(TRAVEL_DOMESTIC_LABEL, TRAVEL_DOMESTIC_VALUE);
		travelmodeMap.put(TRAVEL_OVERSEAS_LABEL, TRAVEL_OVERSEAS_VALUE);
		travelmodeMap.put(TRAVEL_BOTH_LABEL, TRAVEL_BOTH_VALUE);
		return travelmodeMap;
	}
	
	public static Map<String, String> getNatureOfWorksMap() {
		Map<String, String> natureOfWorksMap = new LinkedHashMap<String, String>();
		natureOfWorksMap.put(LOOKUP_NATUREOFWORK_PROJECTASSIGNMENT, LOOKUP_NATUREOFWORK_PROJECTASSIGNMENT);
		natureOfWorksMap.put(LOOKUP_NATUREOFWORK_PRESALES, LOOKUP_NATUREOFWORK_PRESALES);
		natureOfWorksMap.put(LOOKUP_NATUREOFWORK_SALES, LOOKUP_NATUREOFWORK_SALES);
		natureOfWorksMap.put(LOOKUP_NATUREOFWORK_OTHERS, LOOKUP_NATUREOFWORK_OTHERS);
		return natureOfWorksMap;
	}
	
	//getExpenseTypesMap
	public static Map<String, String> getTravelModesMap() {
		Map<String, String> travelModesMap = new LinkedHashMap<String, String>();
		travelModesMap.put(LOOKUP_TRAVELMODE_BUS, LOOKUP_TRAVELMODE_BUS);
		travelModesMap.put(LOOKUP_TRAVELMODE_TRAIN, LOOKUP_TRAVELMODE_TRAIN);
		travelModesMap.put(LOOKUP_TRAVELMODE_FLIGHT, LOOKUP_TRAVELMODE_FLIGHT);
		travelModesMap.put(LOOKUP_TRAVELMODE_SHIP, LOOKUP_TRAVELMODE_SHIP);
		return travelModesMap;
	}
	
	
	public static Map<String, String> getExpenseTypesMap() {
		Map<String, String> expenseTypesMap = new LinkedHashMap<String, String>();
		expenseTypesMap.put(TRAVEL_EXPENSE_TRANSPORT, TRAVEL_EXPENSE_TRANSPORT);
		expenseTypesMap.put(TRAVEL_EXPENSE_LODGING, TRAVEL_EXPENSE_LODGING);
		expenseTypesMap.put(TRAVEL_EXPENSE_BOARDING, TRAVEL_EXPENSE_BOARDING);
		expenseTypesMap.put(TRAVEL_EXPENSE_MISC, TRAVEL_EXPENSE_MISC);
		return expenseTypesMap;
	}
	/*   */
	public static Map<String, String> getCurrencyMap() {
		Map<String, String> currencyMap = new LinkedHashMap<String, String>();
		currencyMap.put(LOOKUP_TRAVELMODE_BUS, LOOKUP_TRAVELMODE_BUS);
		currencyMap.put(LOOKUP_TRAVELMODE_TRAIN, LOOKUP_TRAVELMODE_TRAIN);
		currencyMap.put(LOOKUP_TRAVELMODE_FLIGHT, LOOKUP_TRAVELMODE_FLIGHT);
		currencyMap.put(LOOKUP_TRAVELMODE_SHIP, LOOKUP_TRAVELMODE_SHIP);
		return currencyMap;
	}

	

	public static Map<String, String> getReimbursedByMap() {
		Map<String, String> reimbursedByMap = new LinkedHashMap<String, String>();
		reimbursedByMap.put(LOOKUP_REIMBURSEDBY_ERPANDERP, LOOKUP_REIMBURSEDBY_ERPANDERP);
		reimbursedByMap.put(LOOKUP_REIMBURSEDBY_CLIENT, LOOKUP_REIMBURSEDBY_CLIENT);
		return reimbursedByMap;
	}

	public static String getAutoGeneratedComplaintCode() {

		String lastCode = null;
		String newCode = null;
		String prefix = "CS";
		ComplaintsAndSuggestionDAO complaintDAO = new ComplaintsAndSuggestionDAO();
		lastCode = complaintDAO.getLastGeneratedComplaintCode();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			newCode = lastCode.substring(2);
			Integer numberPart = Integer.parseInt(newCode);
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST COMPLAINT");
			newCode = prefix + "1";

		}
		return newCode;
	}
	
	public static String generatePerdiemRivision() {

		String lastCode = null;
		String newCode = null;
		String prefix = "R";
		ProjectPerdiemDAO projectPerdiemDAO = new ProjectPerdiemDAO();
		lastCode = projectPerdiemDAO.getLastGeneratedPerdiemRivision();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			newCode = lastCode.substring(1);
			Integer numberPart = Integer.parseInt(newCode);
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST COMPLAINT");
			newCode = prefix + "1";

		}
		return newCode;
	}
	
	
	public static String getAutoGeneratedLeaveCODE(LeaveType leaveType,String employeeCode) {

		String lastCode = null;
		String newCode = null;
		String prefix = null;
		if(leaveType.getLeaveType().equals(CommonLookup.SICKLEAVE_TYPE)){
		     prefix = "SL"+employeeCode+"-";
		}else if(leaveType.getLeaveType().equals(CommonLookup.PRIVILIZEDLEAVE_TYPE)){
			 prefix = "PL"+employeeCode+"-";
		}else if(leaveType.getLeaveType().equals(CommonLookup.CASUALLEAVE_TYPE)){
			 prefix = "CL"+employeeCode+"-";
		}else if(leaveType.getLeaveType().equals(CommonLookup.WORKFROMHOME_TYPE)){
			 prefix = "WH"+employeeCode+"-";
		}else if(leaveType.getLeaveType().equals(CommonLookup.LOSS_OF_PAY_TYPE)){
			 prefix = "LOP"+employeeCode+"-";
		}else if(leaveType.getLeaveType().equals(CommonLookup.COMP_OF_TYPE)){
			 prefix = "COMP"+employeeCode+"-";
		}else{
			 prefix = "OH"+employeeCode+"-";
		}
		EmployeeLeaveDAO employeeLeaveDAO = new EmployeeLeaveDAO();
		lastCode = employeeLeaveDAO.getLastGeneratedLeaveCODE();

		
		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			newCode = lastCode.substring(lastCode.indexOf("-") + 1);
			Integer numberPart = Integer.parseInt(newCode);
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST LEAVE CODE");
			newCode = prefix + "1";

		}
		return newCode;
	}
	
	/**
	 * Method to generate PA code for DOmestic purpose in PADOE50051-1 format.
	 * @param employeeCode
	 * @return
	 */
	public static String getAutoGeneratedDomesticProjectAssignmentCode(String employeeCode) {

		String lastCode = null;
		String newCode = null;
		String prefix = "PADO" + employeeCode + "-";
		ProjectAssignmentDAO projectAssignmentDAO = new ProjectAssignmentDAO();
		lastCode = projectAssignmentDAO.getLastGeneratedDomesticProjectAssignmentCode();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			Long numberPart = Long.parseLong(lastCode.substring(lastCode.indexOf("-")+1));
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST COMPLAINT");
			newCode = prefix + "1";

		}
		return newCode;
	}
	/**
	 * Method to generate PA code for International purpose in PAINE50051-1 format.
	 * @param employeeCode
	 * @return
	 */
	public static String getAutoGeneratedInternationalProjectAssignmentCode(String employeeCode) {

		String lastCode = null;
		String newCode = null;
		String prefix = "PAIN" + employeeCode + "-";
		ProjectAssignmentDAO projectAssignmentDAO = new ProjectAssignmentDAO();
		lastCode = projectAssignmentDAO.getLastGeneratedInternationalProjectAssignmentCode();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			Long numberPart = Long.parseLong(lastCode.substring(lastCode.indexOf("-")+1));
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST COMPLAINT");
			newCode = prefix + "1";

		}
		return newCode;
	}
	
	/**
	 * Generates code base on Employee Id and Travel Type
	 * @param employeeCode
	 * @param codeFor
	 * @return
	 */
	public static String getAutoGeneratedTravelRequestCode(String employeeCode, String codeFor) {
		String lastCode = null;
		String newCode = null;
		String prefix = null;
		
		if(codeFor != null && codeFor.equalsIgnoreCase(TRAVEL_DOMESTIC_VALUE))
			prefix = "TR-D-" + employeeCode + "-";
		
		if(codeFor != null && codeFor.equalsIgnoreCase(TRAVEL_OVERSEAS_VALUE))
			prefix = "TR-O-" + employeeCode + "-";
		
		if(codeFor != null && codeFor.equalsIgnoreCase(TRAVEL_BOTH_VALUE))
			prefix = "TR-DNO-" + employeeCode + "-";
		
		TravelRequestDAO travelRequestDAO = new TravelRequestDAO();
		lastCode = travelRequestDAO.getLastGeneratedTravelRequestCode();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			Long numberPart = Long.parseLong(lastCode.substring(lastCode.lastIndexOf("-")+1));
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST TRAVEL REQUEST");
			newCode = prefix + "1";

		}
		return newCode;
	}
	/**
	 * Generates code base on Employee Id
	 * @param employeeCode
	 * @param 
	 * @return
	 */
	public static String getAutoGeneratedMiscExpenseFormCode(String employeeCode) {
		String lastCode = null;
		String newCode = null;
		String prefix = employeeCode+"-"+"MEF-";
		
		MiscReimbursementDAO miscReimbursementDAO = new MiscReimbursementDAO();
		
		lastCode = miscReimbursementDAO.getLastGeneratedMiscExpenseFormCode(employeeCode);
		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {			
			newCode = prefix + lastCode;
		} 
		return newCode;
	}
	

	
	
	public static String getAutoGeneratedRRFCode(String EmpCode) {
		System.out.println("=======EmpCode==In commonlook up=="+EmpCode);

		String lastCode = null;
		String newCode = null;
		String prefix = EmpCode+"-RRF-";
		RRFDAO rrfDAO = new RRFDAO();
		lastCode = rrfDAO.getLastGeneratedRRFCode();

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			newCode = lastCode.substring(11);
			Integer numberPart = Integer.parseInt(newCode);
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST RRF Request");
			newCode = prefix + "1";

		}
		return newCode;
	}
	
	//FOR REGISTERING VENDORDS {TM MODULE}	
	public static String getAutoGeneratedVendorCode() {		
		String lastCode = null;
		String newCode = null;
		String prefix = "ERPandERP-V";
		VendorRegistrationDAO vendorRegistrationDAO=new VendorRegistrationDAO();
		lastCode = vendorRegistrationDAO.getLastGeneratedVendorCode();
		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {
			newCode = lastCode.substring(11);
			Integer numberPart = Integer.parseInt(newCode);
			numberPart++;
			newCode = prefix + String.valueOf(numberPart);
		} else {
			System.out.println("THIS WILL BE THE FIRST RRF Request");
			newCode = prefix + "1";
		}
		return newCode;
	}
	
	
	//FOR ASSET REQUEST CODE 	
		public static String getAutoGeneratedAssetCode() {			
			Long lastCode;
			String newCode = null;
			String prefix = "AR-";
			AssetRequestDAO assetRequestDAO=new AssetRequestDAO();
			lastCode = (long) assetRequestDAO.getLastGeneratedAssetCode();
			
			if (lastCode != null ) {			
				newCode = prefix + lastCode;
			} 
			return newCode;
		}
	
	public static String getAutoGeneratedTravelExpenseFormCode(String travelRequestCode,String employeeCode) {	
		
		String lastCode = null;
		String newCode = null;
		String prefix = travelRequestCode+"-"+"TEF";
		
		TravelReimbursementDAO travelReimbursementDAO = new TravelReimbursementDAO();
		
		lastCode = travelReimbursementDAO.getLastGeneratedTravelExpenseFormCode(employeeCode);

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {			
			newCode = prefix + lastCode;
		} 
		return newCode;
	}
	
public static String getAutoGeneratedPerdiemExpensesFormCode(String projectAssignmentCode, String employeeCode) {	
		
		String lastCode = null;
		String newCode = null;
		String prefix = projectAssignmentCode+"-"+"PEF";
		
		ProjectAssignmentDAO projectAssignmentDAO  = new ProjectAssignmentDAO();
		
		
		lastCode = projectAssignmentDAO.getLastGeneratedProjectPerdiemFormCode(employeeCode);

		if (lastCode != null && !lastCode.equalsIgnoreCase("")) {			
			newCode = prefix + lastCode;
		} 
		return newCode;
	}


	
	public static void main(String a[]){
		System.out.println(CommonLookup.getAutoGeneratedTravelRequestCode("E50001", CommonLookup.TRAVEL_DOMESTIC_VALUE));
	}
}
